# 基础镜像
FROM debian:stable-20250520
# 维护者信息
LABEL maintainer="Meng Wei Jin <mwjwork@qq.com>"

ARG ZIP_NAME=dm8_20250122_x86_rh7_64

# 下载链接
ARG DOWNLOAD_URL=https://download.dameng.com/eco/adapter/DM8/202502/dm8_20250122_x86_rh7_64.zip

USER root

COPY append_limits.conf /home/append_limits.conf
COPY dm_auto_install.xml /home/dm_auto_install.xml

RUN cd /home && \

    # 创建用户所在的组(组名称：dinstall)
    groupadd dinstall -g 2001 && \
    # 创建用户(dmdba)并添加倒用户组 dinstall
    useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba && \
    # 设置用户密码
    echo "dmdba:dameng@123" | chpasswd && \

    # 切换国内源
    sed -i 's@deb.debian.org@repo.huaweicloud.com@g' /etc/apt/sources.list.d/debian.sources && \
    apt update && \
    # 安装必要的软件包
    apt -y install vim curl p7zip-full procps && \

    # 下载安装包
    cd /home && \
    curl -o ${ZIP_NAME}.zip ${DOWNLOAD_URL} && \
    # 解压 zip
    7z x ${ZIP_NAME}.zip -o/home/dm_install && \
    cd /home/dm_install && \
    # 解压 iso
    7z x ${ZIP_NAME}.iso -o/home/dm_install/iso && \
    cd /home/dm_install/iso && \
    # 增加可执行权限
    chmod +x DMInstall.bin && \

    # 修改文件打开最大数
    # 临时修改（避免当前会话需要重启才生效）
    ulimit -n 65535 && \
    # 永久修改
    cat /home/append_limits.conf >> /etc/security/limits.conf && \

    # 安装
    cd /home/dm_install/iso && \
    ./DMInstall.bin -q /home/dm_auto_install.xml && \

    # 删除 apt 缓存，可减小体积
    rm -rf /var/lib/apt/lists/* && \
    # 删除解压的文件夹
    rm -rf /home/dm_install && \
    # 删除压缩包
    rm -f /home/${ZIP_NAME}.zip && \
    # 删除 append_limits.conf
    rm -f /home/append_limits.conf && \
    # 删除 dm_auto_install.xml
    rm -f /home/dm_auto_install.xml

# 添加挂载点
VOLUME /opt/dmdbms

EXPOSE 5236

# tail -f /dev/null作用：必须存在一个一直运行的前台程序，否则容器启动后会自动停止
# 注意 DmServiceDMSERVER 的名字，跟非静默安装可能有所不同
ENTRYPOINT ["/bin/sh", "-c", "/etc/init.d/DmServiceDMSERVER start && /etc/init.d/DmAPService start && tail -f /dev/null"]
